package com.atguigu.juc.one;


//测试可重入锁
public class TestDemo {

    //A
    public synchronized void a(){
        System.out.println("A开始："+Thread.currentThread().getName() );
        b();
        System.out.println("A结束："+Thread.currentThread().getName() );
    }
    //B
    public synchronized void b(){
        System.out.println("B开始："+Thread.currentThread().getName() );
        c();
        System.out.println("B结束："+Thread.currentThread().getName() );
    }
    //C
    public  synchronized  void c(){
        System.out.println("C开始："+Thread.currentThread().getName() );
        System.out.println("C结束："+Thread.currentThread().getName() );
    }

    //测试可重入锁
    public static void main(String[] args) {
        TestDemo testDemo = new TestDemo();
        //a，b，c三个方法是同一把锁
        //上述过程，在a方法里调b方法，在b方法里调c方法，可以实现，因为是可重入锁
        //只要是同一个线程，可以访问n多个同一把锁的方法，这个叫做可重入
        testDemo.a();

    }
}
